package com.xsd.singleton;

/**
 * @Description: 单例模式 懒汉式 同步代码块 ，不安全
 * @Author: zhoufuzong
 * @Created: 2021-01-23 12:34:58
 * @Version: 1.1.0
 */

/**
 * 1) 这种方式，本意是想对第四种实现方式的改进，因为前面同步方法效率太低，
 * 改为同步产生实例化的的代码块
 * 2) 但是这种同步并不能起到线程同步的作用。跟第3种实现方式遇到的情形一
 * 致，假如一个线程进入了if (singleton == null)判断语句块，还未来得及往下执行，
 * 另一个线程也通过了这个判断语句，这时便会产生多个实例
 * 3) 结论：在实际开发中，不能使用这种方式
 */

public class SingletonTest5 {
    public static void main(String[] args) {
        
    }
}


class Singleton5{
   private  static  Singleton5 instance;

   private Singleton5 (){

   }

    public static Singleton5 getInstance() {
       if (instance==null){
           synchronized (Singleton5.class){
               instance =new Singleton5();
           }
       }
        return instance;
    }
}
